﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace _201206QuanLyBanHang.ChucNang
{
    public partial class DMKhuVuc : Form
    {
        //khai bao bien
        bool flat = false;
        private int MaKV;

        public int MaKV1
        {
            get { return MaKV; }
            set { MaKV = value; }
        }
        private string TenKV;

        public string TenKV1
        {
            get { return TenKV; }
            set { TenKV = value; }
        }
        private string GhiChu;

        public string GhiChu1
        {
            get { return GhiChu; }
            set { GhiChu = value; }
        }
         

        private string sqlStr = "select Makhuvuc,tenkhuvuc,ghichu_kv from khuvuc order by makhuvuc,tenkhuvuc,ghichu_kv";
        private BLL_DMKhuVuc db = new BLL_DMKhuVuc();
        private DataSet ds = new DataSet();

        public DMKhuVuc()
        {
            InitializeComponent();
            DataBind(sqlStr);
        }
       /// <summary>
       /// phương thức view dữ liệu lên form
       /// </summary>
       /// <param name="sql"></param>
        public void DataBind(string sql)
        {
            ds = db.getDMKhuVuc(sql);
            DgDMKhuVuc.DataSource = ds.Tables[0];
            DgDMKhuVuc.Columns[0].HeaderText = "Mã Khu vực";
            DgDMKhuVuc.Columns[1].HeaderText = "Tên Khu Vực";
            DgDMKhuVuc.Columns[2].HeaderText = "Ghi Chú";
           
            
           
            DgDMKhuVuc.AllowUserToAddRows = false;
            //DgDMKhuVuc.Columns[0].Visible = false;
            setdoituong();
        }

        private void BtnLuu_Click(object sender, EventArgs e)
        {
            if (txtTenkv.Text == "")
            {
                MessageBox.Show("Tên khu vực rỗng!");
                txtTenkv.Focus();
            }
            else
            {
                if (flat)
                    DMSua();
                else
                    luu();
            }
        }

        private void DgDMKhuVuc_Click(object sender, EventArgs e)
        {
            try
            {
                this.DgDMKhuVuc.BeginEdit(true);
                this.bin();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// phương thức sủ dụng để xóa dữ liệu bằng phím delete
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DgDMKhuVuc_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                switch (e.KeyCode)
                {
                    case Keys.Delete:
                        break;

                }
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        private void DgDMKhuVuc_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
        {
            try
            {
                
               
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }
        /// <summary>
        /// hàm dùng để xóa dữ liệu
        /// </summary>
        private void DMXoa()
        {
            //int id;
            try
            {
               // MaKV = int.Parse(DgDMKhuVuc[DgDMKhuVuc.Columns[0].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString());
                MaKV = int.Parse(this.txtMakv.Text);
            }
            catch
            {
                MessageBox.Show("Chọn khu vực để xóa");
                return;
            }
            
                DialogResult result;
                result = MessageBox.Show("Bạn có muốn xóa không", "Xóa dữ liệu trong danh mục khu vực", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    string err = "Dữ liệu không thể xóa";
                    if (!db.deleteDMKhuVuc(ref err, MaKV))
                        MessageBox.Show(err);
                    else
                        MessageBox.Show("Đã xóa thành công");
                }
                DataBind(sqlStr);
            
          
        }


        /// <summary>
        /// hàm dùng để sửa thông tin
        /// </summary>
        private void DMSua()
        {
            string err = "";
            //MaKV = int.Parse(DgDMKhuVuc[DgDMKhuVuc.Columns[0].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString());
            //TenKV = DgDMKhuVuc[DgDMKhuVuc.Columns[1].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString();
            //GhiChu = DgDMKhuVuc[DgDMKhuVuc.Columns[2].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString();
            MaKV = int.Parse(this.txtMakv.Text);
            TenKV = this.txtTenkv.Text;
            GhiChu = this.txtGhiChu.Text;
            if (!db.updateDMKhuVuc(ref err, MaKV, TenKV, GhiChu))
            {
                MessageBox.Show(err.ToString());
            }
            DataBind(sqlStr);

            
        }
        private void bin()
        {
            this.txtMakv.Text = DgDMKhuVuc[DgDMKhuVuc.Columns[0].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString();
            this.txtTenkv.Text= DgDMKhuVuc[DgDMKhuVuc.Columns[1].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString();
            this.txtGhiChu.Text = DgDMKhuVuc[DgDMKhuVuc.Columns[2].Index, DgDMKhuVuc.CurrentRow.Index].Value.ToString();
            flat = true;
        }

        private void luu()
        {
            //setdoituong(false, true);
            MaKV = int.Parse(this.txtMakv.Text);
            TenKV = this.txtTenkv.Text;
            GhiChu = this.txtGhiChu.Text;
            string err="";
            if(!db.insertDMKhuVuc(ref err,MaKV,TenKV,GhiChu))
            {
                MessageBox.Show(err.ToString());
            }
            DataBind(sqlStr);

        }
        public int laystt()
        {
            int stt = 1;

            string sqlstring = "select max(MaKhuVuc) from KhuVuc";
            string err = "";
            object kq = db.layma(ref err, sqlstring);
            if (kq != System.DBNull.Value)
                stt = Convert.ToInt32(kq) + 1;
            return stt;
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            flat = false;
            setdoituong();
            this.txtMakv.Text = laystt().ToString();
            this.txtTenkv.Focus();
            this.txtGhiChu.Text = "";
            this.txtTenkv.Text = "";
        }
        private void setdoituong()
        {
            //this.txtGhiChu.Enabled = t;
            //this.txtTenkv.Enabled = t;
            this.DgDMKhuVuc.AllowUserToAddRows =false;
            this.DgDMKhuVuc.AllowUserToDeleteRows = false;
        
            //this.DgDMKhuVuc.Enabled = f;
        }

        private bool khuvuccokhachhang(string sql)
        {
            bool kq = true;
            ds = db.getkhachhang(sql);
            if (ds.Tables[0].Rows.Count > 0)
            {
                //có khách hàng
                //co lay thong tin khach hang len luoi khong?
            }
            else
            {
                kq = false;
            }
           
            return kq;
        }
        private void BtnXoa_Click(object sender, EventArgs e)
        {
            string sql = "select * from khachhang where makhuvuc=" + "'" + txtMakv.Text + "'";
            if (khuvuccokhachhang(sql))
            {
                MessageBox.Show("Có khách hàng thuộc khu vực "+ txtTenkv.Text+"\nChương trình không cho phép xóa \n Nếu vẫn muốn xóa xin xóa danh sách khách hàng thuộc khu vực "+txtTenkv.Text +" trước \nXin cám ơn!!!");
            }
            else
            {
                DMXoa();
                //set cac doi tuong
                txtGhiChu.Text = "";
                txtMakv.Text = "";
                txtTenkv.Text = "";
            }

        }

        private void DMKhuVuc_Load(object sender, EventArgs e)
        {

        }

        private void DgDMKhuVuc_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
        

       
        

      
       
}

}
